package AI;
import java.awt.geom.Area;

import javax.swing.JLabel;

import planes.*;
import GAME.*;
import TDALista.*;

public class moverenemyAI extends Thread {
	game juego;
	public moverenemyAI(game j){
		juego=j;
	}
	/**
	 * Metodo que mueve a todos los enemigos que se encuentran en pantalla y controla si chocan contra el jugador.
	 */
	public void run(){ //este Thread se encarga de mover todos los enemigos, en el caso de encontrar un enemigo muerto lo mete en una cola y lo elimina luego.
		
		while(juego.getplayer().isalive()){
		try {
			Thread.sleep(40);
		} catch (InterruptedException e) {}
		
		for(Position<enemy> e:juego.getenemies())
			if(e.element().isalive()){	
				
			if(juego.getplayer().isalive() && intersecta(e.element(),juego.getplayer())){
				juego.getplayer().hit(e.element().gethp());
				e.element().hit(juego.getplayer().gethp());
				if(!e.element().isalive())
				juego.eliminarenemigo(e);
				
			}
			else{	
			e.element().mover();}
			}
			else
				juego.eliminarenemigo(e);
		
		
			
	}
	
	
	}
	/**
	 * Metodo que se utiliza para saber si dos JLabel se intersectan.
	 * @param a,b JLabel son los dos JLabel para los cuales se vera si se interceptan.
	 * @return Boolean retorna true si se intersectan y false si no lo hacen.
	 */
	public boolean intersecta(JLabel a, JLabel b){
	    Area areaA = new Area(a.getBounds());
	    Area areaB = new Area(b.getBounds());

	    return areaA.intersects(areaB.getBounds2D());
	}

}
